Methods and networks of the type in question have been known for quite some time, especially from technical fields of application that not only generally require data to be distributed and provided on different devices of a network, but for which the simultaneous availability of the data on the distributed devices is also of particular importance.
It is natural for such time-critical requirements to occur especially in the field of distributed real-time applications, where what matters is not primarily to process data as fast as possible in the broadest sense, but to perform specific predefined data processing tasks in an accurately timed and synchronous manner on the devices of the network. Typical application fields where it is imperative to be able to provide and process data synchronously on distributed network devices include the programming, testing and subsequent control of control units in the context of rapid control prototyping, hardware-in-the-loop simulation, and control unit calibration.
The technical implementation of the aforementioned processes is often accomplished using a network of devices which are interconnected via a data channel and which are, for example, I/O devices and computing devices; said I/O devices communicating with the process to be controlled and/or monitored, and said computing devices coordinating the timing of the tasks to be performed by the I/O devices. In more complex technical processes, a plurality of different I/O devices communicate with one and the same process to simultaneously measure and actively control process states. The state variables of a technical process are usually, at least partially, linked to one another and, therefore, are also time-dependent on each other.
An example which serves very well to illustrate such a dependency is a multi-cylinder internal combustion engine, in which the pistons are linked via the crankshaft and the valves are linked via the camshaft, and both of these areas are in turn indirectly physically linked via the ignition and injection system. Now if, for example, the firing signals for different pistons are generated by different I/O devices of the network, and the generation of the firing signals is performed as a function of the crankshaft angle of rotation, it is immediately clear that the information about the crankshaft angle of rotation must be identical (and therefore in sync) on all distributed I/O devices in order that the timed control of the various engine components can be fine-tuned to the degree required by the physical linkage of the engine.
The same problem, which in the illustrated example stems from the field of rapid control prototyping, occurs analogously in so-called hardware-in-the-loop simulations, which do not simulate the control or control unit but, at least partially, the real environment of the control unit, which itself is tested in the simulated environment. Thus, in the case of an engine control unit, the control unit is supplied with data of a simulated internal combustion engine (for example, angular speeds of the camshaft and crankshaft, cylinder and valve positions, knock sensor signal, etc.); these signals being generated and provided by different I/O devices so that this data must also be generated and provided synchronously.
In practical applications, the problem of synchronously providing data on different devices of a network is known to be solved by defining and configuring one device as a master device which has the feature of allowing the data to be provided to be generated as a function of a system time available on the master device. The data generated on the master device is then distributed over a parallel data channel to the other devices, called slave devices, and the data received by the slave devices is then immediately activated, i.e., made available for further use, on the slave devices (dSPACE GmbH: “Solutions for Control”, 2004, pages 210-215).
In this connection, depending on the technical field of application, the data channel connecting the master device and the slave device must meet high demands in terms of the achievable transmission rate and with respect to an undelayed transmission. For example, for reliable testing of engine control units, as described earlier with respect to the hardware-in-the-loop simulation, the corresponding angle signals must be changed and provided on all devices of the network in the microsecond (10−6 s) or even sub-microsecond range. The example illustrates the immense quantities of data that must be able to be transmitted by a data channel that establishes the connection between a master device and a slave device using the method known from the prior art. At the same time, this also involves significant limitations with regard to other uses of the data channel, sensitivity to irradiation and emission of signals, and the usability of error detection and correction mechanisms.
From the prior art it is also known to synchronize a master device and a slave device in time by making the same system time available on both devices. The question of how to synchronize distributed clock systems is not the subject matter of the present invention. Rather, it is assumed that using one of the many known methods for clock synchronization will allow a uniform, synchronous system time to be established also on the network devices in question, here on the master device and the associated slave device. In this regard, reference is made to the relevant literature, such as Nissanke, N.: “Realtime Systems”, chapter 16 “Systems of Clocks”, Prentice Hall, Series in Computer Science, 1997.